home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 013 / cleandrv.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  1.4 KB  |  33 lines

  1. 10  REM Disk Cleaning Program
  2. 20  REM Author: Bruce LaVigne  (Madison, WI  IBM-PC User's Group)
  3. 30  REM Written: 1/11/84
  4. 40  DEF SEG : COLOR 7,0 : KEY OFF : CLS
  5. 50  LOCATE 1,28 : PRINT "** Disk Head Cleaner **"
  6. 60  CLEAN$ = "" : CHSUM = 0 : REM initialize variables for read
  7. 70  FOR I=0 TO 63 : REM read assembly program into string
  8. 80  READ BYTE : CLEAN$ = CLEAN$ + CHR$(BYTE) : CHSUM = CHSUM + BYTE
  9. 90  NEXT I
  10. 100  READ CHECK : IF CHSUM <> CHECK THEN PRINT "Bad checksum-retype data" : END
  11. 110  LOCATE 4,1 : INPUT "Drive to clean (A or B): ",DR$
  12. 120  DR$ = LEFT$(DR$,1) : DR = (ASC(DR$) AND &H5F) - 65 : REM Compute Drive #
  13. 130  IF DR<0 OR DR>1 THEN 110
  14. 140  POINTER = VARPTR(CLEAN$) + 1 : ASSEM = PEEK(POINTER) + 256*PEEK(POINTER+1)
  15. 150  POKE ASSEM+13,DR : REM set drive number to clean
  16. 160  LOOP = ASSEM + 11 : LOOPH = INT(LOOP/256)
  17. 170  IF LOOP>32767 THEN LOOP = LOOP - 65536
  18. 180  LOOPL = LOOP AND &HFF
  19. 190  POKE ASSEM+44,LOOPL : POKE ASSEM+45,LOOPH : REM put loop pointer in
  20. 200  LOCATE 10,13
  21. 210  PRINT ">> Put cleaning disk in drive ";DR$;": and press any key <<"
  22. 220  A$ = INKEY$ : IF A$ = "" THEN 220
  23. 230  LOCATE 10,1 : PRINT SPC(75)
  24. 240  LOCATE 10,34 : COLOR 31 : PRINT "* Cleaning *" : COLOR 7
  25. 250  CALL ASSEM : REM call actual disk routine
  26. 260  LOCATE 10,1 : PRINT SPC(75)
  27. 270  LOCATE 6,1 : INPUT "Clean another disk (Y/N)";A$
  28. 280  A$ = LEFT$(A$,1) : IF A$ <> "Y" AND A$ <> "y" THEN CLS : END
  29. 290  LOCATE 6,1 : PRINT SPC(40) : GOTO 110
  30. 300  DATA 49,192,205,26,81,82,184,1,4,185,1,0,186,0,0,205,19,49,192,205,26,60,0,     91,88,80,83,116,7,129,195,176,0,21,24,0,129,195,34,2,21,0,0,190,11,1,128,52
  31. 310  DATA 39,57,200,119,209,57,211,119,205,88,88,49,192,205,19,203
  32. 320  DATA 5785 : REM checksum
  33.